#define XEN_GET_VCPU_INFO(reg) movl TI_cpu(%ebp),reg ; \
shl $sizeof_vcpu_shift,reg ; \
addl HYPERVISOR_shared_info,reg
+#define GET_THREAD_INFO_IF_SMP(reg) GET_THREAD_INFO(reg)
#else
#define XEN_GET_VCPU_INFO(reg) movl HYPERVISOR_shared_info,reg
+#define GET_THREAD_INFO_IF_SMP(reg)
#endif
#define XEN_BLOCK_EVENTS(reg) movb $1,evtchn_upcall_mask(reg)
pushl %ebx; \
movl $(__USER_DS), %edx; \
movl %edx, %ds; \
- movl %edx, %es
+ movl %edx, %es; \
+ GET_THREAD_INFO_IF_SMP(%ebp);
#define SAVE_ALL \
SAVE_ALL_NO_EVENTMASK; \
movl $(__USER_DS), %edx
movl %edx, %ds
movl %edx, %es
+ GET_THREAD_INFO_IF_SMP(%ebp)
XEN_GET_VCPU_INFO(%esi)
movb evtchn_upcall_mask(%esi), %dl
movb %dl, EVENT_MASK+8(%esp)
decl %eax /* eax = -1 */
pushl %ecx
pushl %ebx
- GET_THREAD_INFO(%ebp)
cld
movl %es,%ecx
movl ORIG_EAX(%esp), %esi /* get the error code */
movl $(__KERNEL_DS),%edx
movl %edx,%ds
movl %edx,%es
+ GET_THREAD_INFO_IF_SMP(%ebp)
XEN_GET_VCPU_INFO(%esi)
movb evtchn_upcall_mask(%esi), %dl
movb %dl, EVENT_MASK+12(%esp)